package repositorios;

import java.util.ArrayList;
import java.util.List;

import modelos.Reclamacao;

import interfaces.IRepositorioReclamacao;

public class RepositorioReclamacaoArrayList implements IRepositorioReclamacao{
	
	private List<Reclamacao> dao;
	
	public RepositorioReclamacaoArrayList(){
		dao = new ArrayList<Reclamacao>();
	}

	public void adicionarReclamacao(Reclamacao r) {
		dao.add(r);
	}

	public void removerReclamacao(Reclamacao r) {
		dao.remove(r);
	}

	public List<Reclamacao> listarReclamacao() {
		return dao;
	}
    
	public void editarReclamacao(Reclamacao editar) {
		int index = busca(editar);
		if (index != -1){
		dao.remove(index);
		dao.add (index, editar);
		}
		
	}
	
	public Reclamacao buscarReclamacaoporID(Long id){
		Reclamacao retorno = null;
		for(Reclamacao r : dao){
			if(r.getId() == id){
				retorno = r;
				}
			}
		return retorno;

		}

	public List<Reclamacao> buscaLike(String campo, String valor) {
		List<Reclamacao> retorno = new ArrayList<Reclamacao>();
		for (Reclamacao r : dao){
			if(campo.equals("descricao")){
				if(r.getDescricao().equals(valor)){
					retorno.add (r);
				}
			}
			else if(campo.equals("linha")){
				if(r.getLinha().equals(valor)){
					retorno.add(r);
				}
			}
		}
		
		return retorno;
	}

	private int busca(Reclamacao r){
		int index = -1;
		for (int i = 0; i < dao.size(); i++){
			if (dao.get(i).equals (r)){
				index = i;
			}
		}
		return index;
	}

	@Override
	public List<Reclamacao> buscarDescricaoLinha(String descricao) {
		// TODO Auto-generated method stub
		return null;
	}

}
